![]() 高度平行式處理作業的登錄和執行
专利摘要:
一種相關性資料結構表示處理作業。該相關性資料結構含有複數個元件,而各個元件裹封一程式碼單元。該相關性資料結構可含有相關性弧線以表示元件間相關性。未被該相關性資料結構內之元件所滿足的相關性可表示成虛擬元件。執行環境可利用相關性資料結構及/或並行性狀態超資料以識別出可予執行(即如具有已獲滿足之相關性)的元件。該執行環境可識別出並且在處理作業上充分運用並行性以供按照平行方式執行多個元件。 公开号:TW201308210A 申请号:TW101116450 申请日:2012-05-09 公开日:2013-02-16 发明作者:Jeremy D Martin 申请人:Benefitfocus Com Inc; IPC主号:G06F9-00
专利说明:
高度平行式處理作業的登錄和執行 本揭示是關於並行式處理,並且尤其是有關高度並行式處理作業的登錄和執行。 許多處理作業都含有未經開發的並行性。即如本揭中所述,「並行性」是指兩項或更多可並行地或者按平行方式運作的處理作業(即如其等之間並不具備相關性)。然開發人員卻由於其等開發作業所牽涉到的困難度而未能充分地發揮潛在的並行性。一般說來,開發人員必須在設計時間處先驗地識別並行性、創作程式碼(即如多執行緒及/或緒間通訊)等等,而這些會導致高成本並且將潛在問題引入至所獲系統內。因此,所需要的是為一種能夠系統性地且有效率地進行處理並行性登錄的方式,以及一種經組態設定以有效率地發揮這些並行性的執行管理器。 在一具體實施例裡揭示一種用於高度並行性處理作業的電腦實作方法。該電腦實作方法包含一計算裝置以供執行下列步驟:存取相關性資料結構;維護並行性狀態超資料以表示所滿足的元件相關性;按照該相關性資料結構之並行性狀態超資料以識別出該相關性資料結構中可獲用於執行的元件;以及並行地執行所識別的元件。該相關性資料結構包含:複數個元件,各個元件代表個別的程式碼單元;以及複數條相關性弧線,此等弧線連接該等元件,而各條相關性弧線是代表待予滿足以供執行該相關性資料結構內之相對應元件的相關性。 在另一具體實施例裡揭示一種非過渡性的機器可讀取儲存媒體。該非過渡性機器可讀取儲存媒體含有多項為以令一機器執行用於高度並行式處理作業之方法的指令。該方法包含:存取相關性資料結構;維護並行性狀態超資料以表示所滿足的元件相關性;按照該相關性資料結構之並行性狀態超資料以識別該相關性資料結構中可獲用於執行的複數個元件,其中一元件在當該並行性狀態超資料表示該元件的所有相關性為滿足時可獲用於執行;以及並行地執行該等複數個所識別元件。該相關性資料結構包含:複數個元件,各個元件代表個別的可執行程式碼單元;以及複數條相關性弧線,此等弧線連接該等元件,而各條相關性弧線是代表待予滿足以供執行該相關性資料結構內之相對應元件的相關性。 在另一具體實施例裡揭示一種為以執行用於高度並行性處理作業之方法的計算裝置。該計算裝置包含:記憶體;處理器;以及在該處理器上運作的執行環境。該執行環境係經組態設定以:存取經儲存在該記憶體上的相關性資料結構;維護表示所滿足之元件相關性的並行性狀態超資料;按照該相關性資料結構之並行性狀態超資料以識別該相關性資料結構中可獲用於執行的複數個元件,其中一元件在當該並行性狀態超資料表示該元件的所有相關性為滿足時可獲用於執行;在一或更多執行平台裡並行地執行該等複數個所識別元件;以及更新該並行性狀態超資料,並且回應於該等產生個別輸出之所識別元件的一或更多者以識別出可獲用於執行的額外元件。該相關性資料結構包含:複數個元件,各個元件代表個別的可執行程式碼單元;以及複數條相關性弧線,此等弧線連接該等元件,而各條相關性弧線是代表待予滿足以供執行該相關性資料結構內之相對應元件的相關性。 許多處理作業都含有未經開發的並行性。即如本揭中所述,「並行性」是指兩項或更多可並行地或者按平行方式運作的處理作業(即如其等之間並不具備相關性)。然開發人員卻由於其等開發作業所牽涉到的困難度而未能充分地發揮潛在的並行性。一般說來,開發人員必須在設計時間處先驗地識別並行性、創作程式碼(即如多執行緒及/或緒間通訊)等等,而這些會導致高成本並且將潛在問題引入至所獲系統內。因此,所需要的是為一種能夠系統性地且有效率地進行處理並行性登錄的方式,以及一種經組態設定以有效率地發揮這些並行性的執行管理器。 在一些具體實施例裡,是將處理作業排設於相關性「程式碼單元」內。即如本揭中所使用者,「程式碼單元」或「程式碼之單元」是指一組在邏輯上有所區別的機器可執行指令集合。程式碼單元可為一較大處理作業的其中一部份或元件。程式碼單元可為具體實作於像是硬碟片、非揮發性儲存物、光學儲存媒體等等的非過渡性、機器可讀取儲存媒體之上。程式碼單元可為從該非過渡性儲存媒體所載入,藉以由像是一般目的性處理器、應用特定性積體電路(ASIC)、現場可程式化閘器陣列(FPGA)等等的計算裝置執行。 多個程式碼單元之間可存在有相關性;例如,一第一程式碼單元的輸出可為一第二程式碼單元的所需輸入。這些相關性可為登錄在相關性資料結構內。即如本揭中所使用者,相關性資料結構是指一種其中登錄有程式碼單元間相關性的資料結構。相關性資料結構可為按照像是「有向非迴圈圖形(DAG)」之圖形、樹狀結構、陣列或者任何適當的資料結構所實作。程式碼單元可表示如該資料結構內的「元件」。即如本揭中所使用者,元件為在相關性資料結構裡裹封並且可供叫用一程式碼單元的節點。而程式碼單元之間的相關性可表示如該資料結構內之元件間的連接。即如本揭中所使用者,當第一程式碼單元的輸出是用以構成另一程式碼單元的所需輸入時,相關性就會出現。在該資料結構裡,「相關元件」是指需要另一元件之輸出的元件。相反地,「獨立的」程式碼單元是指無需另一元件之輸出的程式碼單元。元件間的相關性可表示成元件之間的連接(即如弧線)。 在一些具體實施例裡,執行管理器實作由該相關性資料結構所定義的處理作業。該執行管理器利用該相關性資料結構以識別出可執行的元件(即如識別出其相關性獲得滿足的元件)。在一些情況下,程式碼單元可具有由「外部」物項(除該執行管理器以外的物項)所滿足的相關性。例如,元件可為依據分別I/O處理系統的輸出、遠端處理作業的輸出等等而定。該外部物項可在該相關性資料結構中表示成「虛擬元件」。即如本揭中所使用者,虛擬元件是表示在該相關性資料結構以外而無法被該資料結構內之另一元件(或該執行管理器)所滿足的相關性。相反地,對於該相關性資料結構之其他元件(即如該資料結構的「內部元件」)的相關性則可由該執行管理器執行與該元件相關聯的程式碼單元所解決。 即如本揭中所使用者,「外顯性虛擬元件」是指由開發人員或其他物項外顯地添加至該相關性資料結構的虛擬元件。而「內隱性虛擬元件」則是指在某些情況下自動地添加至相關性資料結構(或是取代該資料結構內之現有元件)的虛擬元件,像是當將該元件標定為一子圖形的項目元件時(後文中將詳細討論)。 圖1描繪相關性資料結構100的其一範例。該資料結構100可為具體實作於像是硬碟、非揮發性記憶體、光學儲存媒體等等的非過渡性、機器可讀取儲存媒體之上。該資料結構100亦可在像是「網際網路協定(IP)」網路、無線網路等等的通訊網路上傳通。 在圖1範例中該資料結構100含有DAG;然本揭示並非受限於此,而可經調適以運用任何適當的資料結構。該資料結構100含有獨立元件110,此者表示不具備對於該資料結構100內其他程式碼單元之相關性的程式碼單元。該相關元件112則是相關於該元件110的輸出。此相關性是表示成該元件110與該元件112之間的相關性弧線111。該相關性弧線111的「方向」是表示該元件110的輸出為該元件112的所需輸入。 該相關性弧線111的「方向」是表示必須直到該元件110產生該所需輸入方才執行該元件112的程式碼單元。該弧線111可包含描述相關性的超資料,像是名稱、資料類型、介面定義(即如「應用程式設計介面(API)」、叫回登錄等等)、相關性的「方向」等等。 圖2描繪另一相關性資料結構200的範例,其中多個相關元件212及214需要獨立元件210的輸出。這些相關性是由該元件210與該等元件212及214之間的相關性弧線211所表示。如前所述,該等相關性弧線211可包含關於該相關性之性質的超資料。 在另一範例中,即如圖3所示,相關性資料結構300含有相關於多個元件(元件322及324)之輸出的元件320。這些相關性是由個別的相關性弧線321及323所表示。 圖4描繪包含虛擬元件(即如外部相關性)之相關性資料結構400的範例。在圖4範例中,該元件430是相關於外部、虛擬元件432的輸出(由相關性弧線431所表示)以及「非虛擬」元件434的輸出(由相關性弧線433所表示)。即如後文詳述,該相關性資料結構400的執行管理器可能無法解析該相關性431。相反地,該執行管理器可執行該元件434的程式碼單元以解析該相關性433,藉此產生該元件430所需要的一或更多輸出。 本揭所述的相關性資料結構可含有多個不同「代級」。即如本揭中所使用者,「代級」是指元件間之相關性弧線的數量。第一代級可包含不具內部相關性的獨立元件。而第二代級可含有相關於來自該第一代級之輸出的元件,依此類推。 圖5A描繪含有多個不同代級的相關性資料結構500。在圖5A範例中,該資料結構500含有獨立元件502、504以及506,這些可包含該資料結構500的「第一代級」。該元件506是表示一虛擬元件。 「第二代級」511的相關元件(元件510、512及514)是需要該第一代級內之元件(元件502及/或504)所產生的輸出。而該元件512是相關於502及504兩者的輸出。 「第三代級」521的元件(包含元件520、522、524、526及528)需要由該「第二代級」內之元件所產生的輸出。然而,相關性可展越於多個代級。即如圖5A中所描繪,該元件524需要位於該「第二代級」內之元件510產生的輸出以及位於該「第一代級」內之元件502產生的輸出。因此,當描述多層式的相關性資料結構時以「代級」作為參照雖可為簡便,然該資料結構500內之元件間的實際相關性以及/或者與該等元件相關聯之程式碼單元的並行式執行作業並不侷限在相鄰代級。 該相關性資料結構500「終結」於一或更多「輸出」元件530和532(位在「第四代級」531內)。即如本揭中所使用者,「輸出」元件是指在相關性資料結構裡產生不受該資料結構內其他元件所需要之輸出的元件。因此,輸出元件可指產生該相關性資料結構本身之輸出(即如處理作業或子圖形之輸出)的元件。在圖5A範例裡,該等元件530及532可產生該相關性資料結構500的「輸出」。 本揭中所描述的相關性資料結構可運用在管理程式碼單元的並行式執行作業。在一些具體實施例裡,執行管理器(或其他物項)可存取與一處理作業相關聯的相關性資料結構。執行環境會識別出可予執行的元件(即如擁有「獲得滿足」的相關性)。首先,該相關性資料結構的獨立(即如葉點)元件為可執行。這些獨立(及其他)元件的執行可滿足該相關性資料結構內之其他元件的相關性。即如本揭中所使用者,「獲得滿足的元件」是指可供執行的元件及/或能夠獲用其所需輸入的元件。 執行環境可維護相關性資料結構的「並行性狀態」。即如本揭中所使用者,相關性資料結構的「並行性狀態」是指其元件既經執行及/或其元件輸出已為可獲用的「運行時間」表示。可在相關性資料結構本身內,及/或在另一分別的資料結構裡,維護該相關性資料結構的並行性狀態。當執行環境執行該相關性資料結構內的元件時,該執行環境可更新該並行性狀態以利識別出次一組可供執行的獲得滿足元件。 圖5B描繪相關性資料結構(即圖5A之相關性資料結構500)的其一範例,此結構既經調適以納入並行性狀態超資料。該並行性狀態超資料表示既已執行元件502、504及510(即以元件502、504及510的「填入」狀態所描述)。或另者,或此外,該並行性狀態超資料可包含哪些相關性弧線獲得滿足的表示(即如說明相關性弧線541、542、543、544、545、551、552及553為獲得滿足)。 利用該相關性資料結構503及/或並行性狀態超資料,該執行環境(或其他物項)可識別出能夠予以執行的元件(即其相關性既已獲滿足的元件)。該並行性狀態超資料可維護該等既獲滿足元件的表示。在圖5B範例裡,該並行性狀態超資料個別含有能夠識別出「已獲滿足」及可予執行之元件(即如元件512、520、522和524)的指示器。該並行性狀態超資料亦可識別出其相關性尚未獲得滿足的元件(即如元件514、526、528、530和532)。 即如圖5B所示,一次可有一個以上可供獲用以利執行的元件。該相關性資料結構503(及並行性狀態超資料)表示元件512、520、522、524為可執行。而元件512、520、522及/或524的執行作業可按平行方式(並行地)進行。由於該相關性資料結構內之程式碼單元的表示以及該並行性狀態超資料的可獲用性之故,因此能夠簡易地識別出該等元件512、520、522及524之間的平行性。 即如圖5B所示,並行式作業的機會是按照相關性獲得滿足的次序而定。例如,該元件514無法獲用以供執行,理由是其對於虛擬元件506之輸出的相關性尚未得到滿足。然在其他實例中,該等元件可為依照不同次序完成執行,從而獲致不同的並行性狀態以及不同的並行性作業可獲用元件集合。並行性狀態上的差異可肇因於包含下列的許多不同因素,然不限於此:處理負載、通訊延宕、I/O時間等等。例如,該元件502可對應於一資料庫中的資料存取作業。在一些情況下(即如當資料庫上的負載為輕微時),是能夠相對快速地完成此項作業。然在其他實例中(即如當資料庫負載為沉重時),該元件的執行作業相對於其他元件可能須耗佔較久時間。元件在該相關性資料結構內的排置方式,且連同並行性狀態維護,可供發揮即時並行性,無論執行其他元件之次序及/或速度上的變化如何皆然。 圖5C描繪含有並行性狀態超資料之相關性資料結構的另一範例。在圖5C範例裡,當執行元件時,會將該等元件並連同從而所滿足的相關性弧線自該資料結構505中移除。因此會將可獲用以供執行之元件(即如其相關性獲得滿足之元件)識別為該資料結構505的葉點節點。如同圖5B,圖5C表示該等元件502、504及510為既經執行,並且該資料結構內的其他元件能夠獲用其等的輸出。故而從該資料結構505中移除這些元件以及相對應的相關性弧線(即圖5B內的弧線541、542、543、544、545、551、552和553)。 可獲用以供執行的元件(即如其相關性既經滿足的元件)會被識別為該資料結構505內的葉點節點。在一些具體實施例裡,該並行性狀態超資料可進一步含有個別如前文所述的指示器560。或另者,可藉由巡行該資料結構505進行元件識別以識別出葉點節點(即如獨立於外顯性指示器560)。 該相關性資料結構內之元件的程式碼單元執行作業所產生之輸出可為由該執行環境(或其他物項)加以儲存(即如快取),並令為可獲用而用於其他、相關元件的輸入。 在一些具體實施例裡,可從相關性資料結構中擷取出子圖形。子圖形可含有一或更多元件,包含「根點」元件以及一或更多「項目」元件。「根點」元件是(直接地或間接地)相關於由項目元件所產生的輸出。而「項目」元件為根據自該子圖形外部所產生之輸入而定的元件。在一些具體實施例裡,子圖形受到制約以使得項目元件是存在於一條起源自該根點元件的路徑上。從而,可自根點巡行子圖形,直到所有路徑都在葉點元件(不具有相關性的元件)或項目元件之內結束為止。子圖形可為按如程式碼單元、元件等等所裹封及/或曝出,並且可獨立於自其所擷取出的相關性資料結構所執行。 圖6A描繪相關性資料結構600的其一範例,而可自其擷取出一子圖形。該相關性資料結構600含有元件610、612、613、614、615、616、617及618,這些可如前文所述般藉由相關性弧線所互連。自該相關性資料結構600可擷取出含有「根點」元件610和項目元件612的子圖形620。該等元件613及616可為納入在該子圖形內,藉以滿足該根點節點610的相關性。圖6B顯示如自該相關性資料結構600所擷取出的子圖形601。在一些具體實施例裡,可將一子圖形之項目元件的相關性表示成虛擬元件。圖6C描繪含有代表該元件612之相關性的虛擬元件632之子圖形602。 即如前文所討論,像是虛擬元件632的虛擬元件是表示外部相關性(即不被一特定相關性資料結構或子圖形內之元件所滿足的相關性)。因此,該子圖形(或是實作該子圖形的執行環境)可負責對映該等相關元件的輸入/輸出資料。 圖6D說明從圖6C之子圖形602所產生的函數。在圖6D範例中,該虛擬元件632具有對於函數「foo」之引數(arg0)的邏輯相關性,該者可表示該子圖形602的裹封。 在一些具體實施例裡,可將子圖形的「回應」或輸出值送返至以及/或是運用於其他處理作業及/或處理作業的輸出。據此,子圖形的經裹封表示可為組態設定以於其內捕捉元件的一或更多輸出,並且令這些輸出可獲用於該執行環境或其他物項。圖6E說明提供可由其他物項及/或元件獲用之輸出資料611的子圖形602。 即如前文所討論,子圖形可為按如一可執行程式碼單元所曝出。因此,在一些具體實施例裡,可將子圖形裹封於一元件內。圖6F說明含有裹封如前所述之子圖形620的元件640之相關性資料結構604。在圖6F範例裡,由於該元件640的執行可令該子圖形620裹封在該元件640內以予執行,故而得到該等相關性資料結構及/或子圖形的階層式或遞迴性執行。 如前所述,將處理作業表示如相關性資料結構的元件可讓執行環境(或其他物項)能夠識別出並且充分發揮並行性。除此之外,這種表示方式可藉由減輕並行性相關之作業的負擔及/或將程式碼單元裹封於分別的元件內來簡化程式碼開發作業。 下列範例說明本揭所教示的系統及方法如何地簡化處理作業實作的複雜度。在此範例中是利用JavaScript來定義一組處理函數(或方法)。然本揭示在此方面並無限制,並且可為併同於任何適當的程式設計語言或環境所實作。 一處理作業係按下列方式所定義:1.接受一輸入參數,inValue;2.叫用asyncGetRandomNum;3.利用inValue及來自步驟2之asyncGetRandomNum的結果以叫用asyncAdder;4.利用來自步驟2之步驟asyncGetRandomNum的結果以叫用asyncDoubler;5.利用步驟2及3之asyncGetRandomNum和asyncAdder的結果以叫用asyncAdder;6.利用步驟5之asyncAdder的結果以叫用asyncDoubler;7.利用步驟4及6之asyncDoubler的結果以叫用asyncAdder;以及8.非同步地送返步驟7之asyncAdder的結果。 在第一種方式裡是根據上述的處理步驟按序列方式來實作處理作業: 在替代性具體實施例中,是將該等處理作業的一些部份(步驟1-8)裹封在個別、非同步的程式碼單元元件內。該等非同步程式碼單元可接受叫回以作為最後參數,此者可在當完成該程式碼單元的執行時用以送返控制。在該非同步程式碼單元內出現的錯誤會被傳通以作為該所提供叫回的參數。 該處理作業的步驟係經節段化成多個程式碼單元(即如元件),而這些單元係經陣列排置於一相關性資料結構裡。圖7描繪一對應於前述處理作業的示範性相關性資料結構。即如圖7所示,該相關性資料結構701含有表示步驟3713與其相關之「inValue」的虛擬元件711。該資料結構701進一步含有表示步驟2的元件712,此元件不具相關性。步驟4是由元件714所表示,並且含有表示步驟4 714需要由步驟2 712所產生之輸出的相關性弧線。步驟5是由元件715所表示,並且含有表示分別對於步驟2 712及步驟3 713輸出之相關性的相關性弧線。步驟6是由元件716所表示,並且含有對應至其對於步驟5 715輸出之相關性的相關性弧線。步驟7是由元件717所表示,並且含有表示分別對於步驟6 716及步驟4 714輸出之相關性的相關性弧線。圖7中雖未描繪,然確能納入額外元件或弧線來表示該相關性資料結構701的輸出(即如步驟7 717的輸出)。 該相關性資料結構可在如前文所述的執行環境裡執行。在本範例裡,該執行環境是指「SyncGraph」程式館,此者可經組態設定以供定義相關性資料結構、解譯該相關性資料結構、供以識別出隨可執行的元件、維護並行性狀態超資料等等。下列的程式碼列表提供一項利用「SyncGraph」來定義並執行如前所述之處理作業的範例: 該「SyncGraph」程式館的初始化是依循如圖7所描繪的相關性資料結構701。第一個「rnd0」項目定義該處理作業的步驟2(即圖7中的元件712)。步驟3(元件713)是由「add0」項目所定義,並且含有對於步驟2(rnd0)之輸出以及#in輸入數值的相關性。在圖7中,這些相關性是藉由從該元件713至該虛擬元件711以及步驟2之元件712的相關性弧線所說明。該「db10」項目定義步驟4(圖7中的元件714)並且含有對於步驟2之輸出的相關性(圖7中是以從該元件714至該元件712的相關性弧線所說明)。該「add1」項目定義該處理作業的步驟5,並且含有對於步驟2及3之輸出的相關性。這些相關性在圖7中是以分別地從該元件715至該等元件712及713的相關性弧線所說明。該「db11」項目定義該處理作業的步驟6,並且含有對於步驟5之輸出的相關性(即自該元件716至該元件715的相關性弧線)。最後,該「add2」項目定義步驟7並且含有分別地對於步驟4及6的相關性(分別地自該元件717至該等元件714及716的相關性弧線)。 如前所述,比起令定方式而言,利用該執行環境(SyncGraph)以實作該處理作業所需要的程式碼會顯著地較為簡易。此外,該SyncGraph方式讓該執行環境能夠在該處理作業裡識別出且充分地運用並行性,然否則可能遺為未經運用(或是需要額外、自訂的程式碼俾充分發揮)。例如,一旦步驟2的輸出為可獲用,即能並行地實作步驟3 713及步驟4 714。 如前所述,可將程式碼單元裹封在經納入於一相關性資料結構內的「元件」裡。執行環境可存取該相關性資料結構,識別出其內的並行性並且執行該等元件。唯本揭示在此方面並無限制,同時確能利用包含下列項目的任何適當機制所實作,然不限於此:介面,像是「應用程式設計介面(API)」、物件介面等等;服務描述,像是「簡易物件存取協定(SOAP)」、「網頁服務描述語言(WSDL)」等等;函數原型等等。執行環境可經組態設定以解譯及/或執行利用一或更多裹封機制(即如在一或更多執行平台上)所實作的元件。這些執行機制可包含如下,然不限於此:執行緒、程序、虛擬機器(即如JavaTM虛擬機器)、文稿解譯器(即如JavaScript解譯器)、原生執行平台、擬仿執行平台等等。執行環境可含有一或更多經組態設定以執行利用不同裹封機制所實作之元件的執行平台。例如,執行環境可經組態設定以在Java虛擬機器執行平台上執行含有JavaTM位元碼程式碼單元的第一元件,利用文稿解譯器執行含有JavaScript程式碼單元的元件,並且執行另一含有「原生」程式碼單元的元件等等。從而,該等執行平台可包含如下,然不限於此:執行緒、程序、虛擬機器(即如JavaTM虛擬機器)、文稿解譯器(即如JavaScript解譯器)、原生執行平台、擬仿執行平台等等。 圖8係為以充分運用處理作業並行性之方法800的具體實施例之流程圖。 在步驟810處,該方法800開始且初始化。步驟810可包含自像是硬碟片、非揮發性記憶體等等的非過渡性、機器可讀取儲存媒體載入一或更多機器可讀取指令。步驟810可進一步包含對處理資源、執行環境以及/或是虛擬機器資源進行存取及/或初始化。 步驟820包含存取含有複數個元件的相關性資料結構。該等元件的一或更多者可裹封一個單元的可執行程式碼(程式碼單元)。在一些具體實施例裡,該相關性資料結構可含有一或更多表示外部相關性的虛擬元件。該相關性資料結構可進一步含有表示元件相關性的相關性弧線,即如前文所述。 步驟830包含識別出隨即可予執行的元件。在一些具體實施例裡,步驟830包含巡行在步驟820處所存取的相關性資料結構以識別出葉點元件(即其相關性既獲滿足的元件及/或不具相關性的元件)。或另者,或此外,步驟830可包含存取並行性狀態超資料,此者表示哪些元件既經執行(若確有)以及/或是識別出由於執行一元件及/或一外部虛擬元件而可為獲用的輸入及/或輸出。步驟830可包含識別出複數個可按平行方式執行的元件。 步驟830可進一步包含決定是否既已完成在步驟820之相關性資料結構內所定義的處理作業(即如既已執行所有的元件及/或既已產生全部的所需輸出)。若步驟830表示已完成該項處理作業,則流程繼續前進到步驟870;否則,若有額外元件仍須予以執行,則流程繼續到步驟840。 在步驟840處,一執行環境執行該等所識別元件。步驟840的執行作業可包含並行地(即如依平行方式)及/或按照序列方式來執行該等所識別元件。在一些具體實施例裡,元件的執行包含對該元件提供一或更多輸入,以及/或者登錄可在當該元件完成執行時所叫用的叫回(或是其他的同步化機制)。該叫回機制可供輸出通行及/或錯誤處置,即如前文所述。在一些具體實施例裡,步驟840包含對該元件選定複數個不同的執行平台或環境之其一者(即如JavaTM虛擬機器、JavaScript解譯器等等)。 步驟850包含維護屬於在步驟820處所存取之相關性資料結構的並行性超資料。因此,步驟850可包含存取由在步驟840處執行該等元件所產生,及/或自外部資源(即如虛擬元件)所提供,的輸出資料。步驟850可進一步包含儲存或快取該輸出資料以用來作為該相關性資料結構內之其他元件的輸入資料並且/或是作為該相關性資料結構之處理作業的輸出。在一些具體實施例裡,可快取及/或儲存該輸出/輸入資料以作為如前所述之並行性超資料的一部份。 在一些具體實施例裡,步驟850是按照與步驟840處之元件執行為非同步的方式運作(即如可在異於步驟840處之元件執行的分別執行緒或程序中實作步驟850)。這種非同步執行方式讓該方法800能夠更加快速地偵知元件的完成及/或識別出可獲用新的、外部輸入。從而,可將步驟850描述成與步驟840並行地運作。 步驟860包含決定是否既已完成元件的執行及/或既已收到一或更多個輸入資料數值。若是,則流程繼續到步驟830處,在此識別出可獲用以供執行的額外元件,即如前文所述;否則,流程繼續到步驟850處。因為步驟840、850及/或860可為相對於彼此非同步地運作,所以一旦新元件的相關性得到滿足,就能將此元件識別為可獲用以供執行而無須等待完成較早叫用元件的執行作業。 該方法繼續回到步驟830,在此會利用該相關性資料結構以及經更新的並行性狀態超資料來識別出一或更多可獲用於執行的額外元件,並且/或者決定是否既已完成該處理作業(即如是否既已執行過該相關性資料結構內的所有元件),即如前文所述。 在步驟870處,該流程即告結束,直到收到次一處理作業及/或相關性資料結構為止,而此時流程會繼續到步驟820處。 圖9為用於並行式處理作業之方法900的具體實施例之流程圖。 在步驟910處,該方法900開始且初始化,即如前文所述。 在步驟920處,接收一處理作業。該處理作業可包含一或更多由一或更多個別程式碼單元所實作的處理步驟。 步驟930包含定義相關性資料結構以供實作步驟920的處理作業。步驟930可包含將該處理作業節段化成一或更多元件,各個元件對應於該處理作業的其一局部並與其一程式碼單元相關聯。因此各個元件可裹封個別的程式碼單元,並且提供在一執行環境內執行該程式碼單元。步驟930可進一步包含定義元件之間的相關性,即如前文所述。 步驟940包含定義含有步驟930之元件的相關性資料結構。步驟940可進一步包含定義該等元件之間的相關性弧線,各條相關性弧線是對應於該等元件之間的相關性。 在步驟950處,將該相關性資料結構提供至執行環境,此者可利用該相關性資料結構以執行該處理作業,即如前文併同於圖8所述。 在步驟960處,該方法900即告結束,直到在步驟920處收到次一處理作業為止。 圖10為用於並行式處理之系統1000的具體實施例之區塊圖。該系統1000包含計算裝置1010,此裝置可含有處理器1012、記憶體1014、多個人機介面裝置1016(即如顯示器、鍵盤、滑鼠、喇叭等等),及/或非過渡性、機器可讀取媒體1018。該計算裝置1010可進一步含有一或更多像是網路介面、輸入/輸出裝置等等的通訊介面1020,藉以將該計算裝置1010通訊耦接至網路1021。 一執行環境1030係於該計算裝置1010上運作。該執行環境1030可為按如一或更多經儲存在該非過渡性、機器可讀取儲存媒體1018上的指令所具體實作。該執行環境1030可包含一或更多執行平台1032,這些可包含如下,然不限於此:執行緒、程序、虛擬機器(即如JavaTM虛擬機器)、文稿解譯器(即如JavaScript解譯器)、原生執行平台、擬仿執行平台等等。 該執行環境1030可經組態設定以實作處理作業。在一些具體實施例裡,該執行環境1030(或其他工具)可供定義相關性資料結構以利實作處理作業(即如前文併同於圖9所述)。在一些具體實施例裡,相關性資料結構1033可為儲存在像是該媒體的非過渡性、機器可讀取儲存媒體上,並且/或者下載至該記憶體1016內,以由該執行環境1030執行。 該執行環境1030可經組態設定以藉由處理對應於該機器可讀取儲存媒體1018內或其他來源(即如網路連接、人機介面裝置1016等等)之作業的相關性資料結構1033來執行處理作業。該執行環境1030可利用該相關性資料結構及/或並行性狀態超資料1035以識別出可獲用於執行的元件,即如前文所述。在一些具體實施例裡,該執行環境1030並行地(即如按照平行方式)執行該相關性資料結構1033的複數個元件。可在一或更多執行平台或環境1032中執行該等元件。 該執行環境1030可維護表示既已執行過哪些元件及/或識別出輸入/輸出資料可獲用性的並行性狀態超資料1035。該執行環境1030利用該並行性狀態超資料1035及/或該相關性資料結構以識別出其相關性既獲滿足並可獲用於執行的元件。該執行環境1030繼續執行該相關性資料結構的元件(並且維護該並行性超資料1035),直到完成該處理作業(即如獲得所欲輸出及/或既已執行過該相關性資料結構1033內的所有元件)為止。 該相關性資料結構1033之處理作業的一或更多輸出可為儲存在機器可讀取儲存媒體1018上、於該網路1021上傳送(透過該網路介面1020),以及/或者在人機介面裝置1016上呈現予使用者。 前揭說明提供眾多特定細節以供通徹瞭瞭解本揭具體實施例。然熟諳本項技藝之人士將能認知到確能省略該等特定細節點的一或更多者,或者可運用其他方法、元件或材料。在一些實例中並未對操作予以詳加顯示或描述。 同時,可按任何適當方式,將所述特性、操作或特徵合併在一或更多個具體實施例之內。亦將隨能瞭解,本揭示中關聯於具體實施例所描述之方法的步驟或動作之次序確可加以變更,即如熟諳本項技藝之人士所能顯見者。因此,除另特定地說明須依循次序者外,圖式或詳細說明中的任何次序僅為示範之目的而並非欲以意指必要次序。 具體實施例可含有各種步驟,這些步驟可為按機器可執行指令並以由一般目的性或特殊目的性電腦(或其他電子裝置)執行所具體實作。或另者,該等步驟可為由含有供以執行該等步驟之特定邏輯的硬體元件,或是硬體、軟體及/或韌體之組合,所執行。 具體實施例亦可為按如含有非過渡性、機器可讀取儲存媒體的電腦程式產品所提供,此媒體上儲存有多項指令而可用以程式設計電腦(或其他電子裝置)以執行本揭所述的處理程序。該電腦可讀取儲存媒體可包含如下,然不限於此:硬碟機、軟碟片、光碟片、CD-ROM、DVD-ROM、ROM、RAM、EPROM、EEPROM、磁性或光學卡、固態記憶體裝置,或是其他類型而可適用於儲存電子指令的媒體/機器可讀取媒體。 即如本揭中所使用者,軟體模組或元件可包含任何類型而位於記憶體裝置及/或機器可讀取儲存媒體內部的電腦指令或電腦可執行程式碼。軟體模組可例如含有一或更多的電腦指令實體或邏輯區塊,這些可予組織成副程式、程式、物件、元件、資料結構等等而供執行一或更多作業或者實作特定的抽象資料類型。 在一些具體實施例裡,一特定軟體模組可含有儲存在記憶體裝置之不同位置處的分別指令,而該等可併同地實作該模組的所述功能性。的確,模組可含有單項指令或多項指令,並且可分佈在許多不同的程式碼節段裡、在不同的程式之間且跨越於多個記憶體裝置。有些具體實施例可在分散式計算環境中所實作,其中作業是由藉通訊網路所鏈結的遠端處理裝置來執行。在分散式計算環境裡,軟體模組可位於本地及/或遠端的記憶體儲存裝置內。此外,資料庫記錄中所併同連附或顯析的資料可為常駐於相同的記憶體裝置內或是跨越多個記憶體裝置,並且可跨越於網路在資料庫內之記錄的多個欄位裡鏈結合一。 熟諳本項技藝之人士將能瞭解確可對前述具體實施例的細節進行多項變更而不致悖離本發明的基礎原理。 100‧‧‧相關性資料結構 110‧‧‧元件 111‧‧‧相關性弧線 112‧‧‧相關元件 200‧‧‧相關性資料結構 210‧‧‧獨立元件 211‧‧‧相關性弧線 212‧‧‧相關元件 214‧‧‧相關元件 300‧‧‧相關性資料結構 320‧‧‧元件 321‧‧‧相關性弧線 322‧‧‧元件 323‧‧‧相關性弧線 324‧‧‧元件 400‧‧‧相關性資料結構 430‧‧‧元件 431‧‧‧相關性弧線 432‧‧‧外部、虛擬元件 433‧‧‧相關性弧線 434‧‧‧非虛擬元件 500‧‧‧相關性資料結構 501‧‧‧第一代級 502‧‧‧獨立元件 503‧‧‧相關性資料結構 504‧‧‧獨立元件 505‧‧‧資料結構 506‧‧‧獨立元件 511‧‧‧第二代級 510‧‧‧元件 512‧‧‧元件 514‧‧‧元件 521‧‧‧第三代級 520‧‧‧元件 522‧‧‧元件 524‧‧‧元件 526‧‧‧元件 528‧‧‧元件 530‧‧‧輸出元件 531‧‧‧第四代級 532‧‧‧輸出元件 541‧‧‧相關性弧線 542‧‧‧相關性弧線 543‧‧‧相關性弧線 544‧‧‧相關性弧線 545‧‧‧相關性弧線 551‧‧‧相關性弧線 552‧‧‧相關性弧線 553‧‧‧相關性弧線 560‧‧‧指示器 600‧‧‧相關性資料結構 610‧‧‧元件 611‧‧‧輸出資料 612‧‧‧元件 613‧‧‧元件 614‧‧‧元件 615‧‧‧元件 616‧‧‧元件 617‧‧‧元件 618‧‧‧元件 620‧‧‧子圖形 632‧‧‧虛擬元件 640‧‧‧元件 701‧‧‧相關性資料結構 711‧‧‧步驟1 712‧‧‧步驟2 713‧‧‧步驟3 714‧‧‧步驟4 715‧‧‧步驟5 716‧‧‧步驟6 717‧‧‧步驟7 1000‧‧‧並行式處理系統 1010‧‧‧計算裝置 1012‧‧‧處理器 1014‧‧‧記憶體 1016‧‧‧人機介面裝置 1018‧‧‧非過渡性、機器可讀取媒體 1020‧‧‧通訊介面 1021‧‧‧網路 1030‧‧‧執行環境 1032‧‧‧執行平台 1033‧‧‧相關性資料結構 1035‧‧‧並行性狀態超資料 圖1描繪相關性資料結構的其一範例;圖2描繪相關性資料結構的另一範例;圖3描繪相關性資料結構的另一範例;圖4描繪相關性資料結構的另一範例;圖5A描繪相關性資料結構的另一範例;圖5B描繪相關性資料結構及並行性狀態超資料的其一範例;圖5C描繪相關性資料結構及並行性狀態超資料的另一範例;圖6A描繪可自其擷取出一子圖形的相關性資料結構;圖6B描繪子圖形的其一範例;圖6C描繪含有虛擬元件之子圖形的其一範例;圖6D描繪具有輸入參數相關性之子圖形的其一範例;圖6E描繪經組態設定以產生一輸出之子圖形的其一範例;圖6F描繪在一相關性資料結構內之子圖形的其一範例;圖7描繪一相關性資料結構;圖8為用於並行式處理作業之方法的具體實施例之流程圖;圖9為另一用於並行式處理作業之方法的具體實施例之流程圖;以及圖10為用於並行式處理作業之系統的區塊圖。 500‧‧‧相關性資料結構 501‧‧‧第一代級 502‧‧‧獨立元件 504‧‧‧獨立元件 506‧‧‧獨立元件 510‧‧‧元件 511‧‧‧第二代級 512‧‧‧元件 514‧‧‧元件 520‧‧‧元件 521‧‧‧第三代級 522‧‧‧元件 524‧‧‧元件 526‧‧‧元件 528‧‧‧元件 530‧‧‧輸出元件 531‧‧‧第四代級 532‧‧‧輸出元件
权利要求:
Claims (20) [1] 一種用於高度並行性處理作業的電腦實作方法,其中包含:一計算裝置,為以執行下列步驟:存取相關性資料結構,此者含有;複數個元件,各個元件代表個別的程式碼單元,以及複數條相關性弧線,此等弧線連接該等元件,而各條相關性弧線是代表待予滿足以供執行該相關性資料結構內之相對應元件的相關性,維護並行性狀態超資料以表示所滿足的元件相關性,按照該相關性資料結構之並行性狀態超資料以識別該相關性資料結構中可獲用於執行的元件,以及並行地執行該等所識別元件。 [2] 如申請專利範圍第1項所述之方法,進一步包含回應於執行該等所識別元件以更新該並行性狀態超資料。 [3] 如申請專利範圍第2項所述之方法,其中更新該並行性狀態超資料包含快取由執行該相關性資料結構內之元件所產生的輸出。 [4] 如申請專利範圍第1項所述之方法,進一步包含當自該相關性資料結構之外接收到外部輸入時更新該並行性狀態超資料,其中該外部輸入並不是由執行該相關性資料結構的元件所產生。 [5] 如申請專利範圍第1項所述之方法,其中當一元件的所有相關性皆為滿足時,該元件即可獲用於執行。 [6] 如申請專利範圍第1項所述之方法,進一步包含:回應於執行該等所識別元件以更新該並行性狀態超資料;以及識別出該相關性資料結構中可獲用於執行的元件,並且回應於該更新處理以執行該等所識別元件,直到該相關性資料結構內的各個元件皆為已被執行為止。 [7] 如申請專利範圍第1項所述之方法,進一步包含:回應於執行該等所識別元件以更新該並行性狀態超資料;以及識別出該相關性資料結構中可獲用於執行的元件,並且回應於該更新處理以執行該等所識別元件,直到產生該相關性資料結構的輸出結果為止。 [8] 如申請專利範圍第1項所述之方法,其中執行該相關性資料結構可產生輸出結果,該方法進一步包含在人機介面裝置上向使用者顯示該輸出結果、在網路上傳送該輸出結果以及將該輸出結果儲存在非過渡性電腦可讀取儲存媒體上的其一者。 [9] 如申請專利範圍第1項所述之方法,其中利用執行平台以執行該等所識別元件,並且其中該執行平台為下列其中一者:虛擬機器、執行緒、處理程序、文稿解譯器、原生執行平台以及擬仿執行平台。 [10] 如申請專利範圍第1項所述之方法,進一步包含:將一處理作業的複數個步驟裹封成複數個元件,各個元件含有個別程式碼單元以實作下列複數個處理作業步驟的其一者:識別出元件相關性,各者表示待予滿足之相關性以供執行該等元件的個別者;以及定義相關性資料結構,此者含有;複數個元件;以及多條相關性弧線,此等弧線互連該等元件並且各條相關性弧線表示個別的所識別元件相關性。 [11] 如申請專利範圍第10項所述之方法,其中該等所識別元件相關性之其一者為外部的元件相關性,此者並不由該等複數個元件的任一者所滿足,該方法進一步包含在該相關性資料結構內納入虛擬元件以表示該外部相關性。 [12] 一種非過渡性機器可讀取儲存媒體,此者含有多項為以令一機器執行用於高度並行式處理作業之方法的指令,該方法包含:存取相關性資料結構,此者含有;複數個元件,各個元件代表個別的可執行程式碼單元,以及複數條相關性弧線,此等弧線連接該等元件,而各條相關性弧線是代表待予滿足以供執行該相關性資料結構內之相對應元件的相關性,維護並行性狀態超資料以表示所滿足的元件相關性,按照該相關性資料結構之並行性狀態超資料以識別出該相關性資料結構中可獲用於執行的元件,其中當該並行性狀態超資料表示一元件的所有相關性皆獲滿足時該元件即為可獲用於執行;以及並行地執行該等複數個所識別元件。 [13] 如申請專利範圍第12項所述之非過渡性機器可讀取儲存媒體,該方法進一步包含回應於執行該等複數個所識別元件以更新該並行性狀態超資料,其中更新該並行性狀態超資料包含快取一元件所產生輸出。 [14] 如申請專利範圍第12項所述之非過渡性機器可讀取儲存媒體,該方法進一步包含當自該相關性資料結構之外收到外部輸入時更新該並行性狀態超資料,其中該外部輸入並不是由執行該相關性資料結構的元件所產生。 [15] 如申請專利範圍第12項所述之非過渡性機器可讀取儲存媒體,該方法進一步包含:當滿足該相關性資料結構內的相關性時,藉由執行該相關性資料結構內的元件和接收外部輸入之其一者以更新該並行性狀態超資料;回應於更新該並行性狀態超資料以識別出可獲用於執行的額外元件;以及並行地執行該等額外元件。 [16] 如申請專利範圍第15項所述之非過渡性機器可讀取儲存媒體,該方法進一步包含:更新該並行性狀態超資料,回應於該更新處理以識別出可獲用於執行的額外元件,以及並行地執行該等額外元件,直到產生該相關性資料結構的所識別輸出結果為止;以及在人機介面裝置上向使用者顯示該所識別輸出結果,在網路上傳送該所識別輸出結果,以及將該所識別輸出結果儲存在非過渡性電腦可讀取儲存媒體上。 [17] 如申請專利範圍第12項所述之非過渡性機器可讀取儲存媒體,其中利用執行平台以執行該等所識別元件,並且其中該執行平台為下列其中一者:虛擬機器、執行緒、處理程序、文稿解譯器、原生執行平台以及擬仿執行平台。 [18] 如申請專利範圍第12項所述之非過渡性機器可讀取儲存媒體,該方法進一步包含:將一處理作業的複數個步驟裹封成複數個元件,各個元件含有個別程式碼單元以實作下列複數個處理作業步驟的其一者:識別出元件相關性,各者表示待予滿足之相關性以供執行該等元件的個別者;以及定義相關性資料結構,其中含有複數個元件,以及多條相關性弧線,此等弧線互連該等元件並且各條相關性弧線表示個別的所識別元件相關性。 [19] 如申請專利範圍第18項所述之非過渡性機器可讀取儲存媒體,其中該等所識別元件相關性之其一者為外部的元件相關性,此者並不由該等複數個元件的任一者所滿足,該方法進一步包含在該相關性資料結構內納入虛擬元件以表示該外部相關性。 [20] 一種執行用於高度並行性處理作業之方法的計算裝置,其中包含:記憶體;處理器;以及執行環境,此者運作於該處理器上,其中該執行環境係經組態設定以,存取經儲存在該記憶體上的相關性資料結構,該相關性資料結構含有,複數個元件,各個元件代表個別的可執行程式碼單元,以及複數條相關性弧線,此等弧線連接該等元件,而各條相關性弧線是代表待予滿足以供執行該相關性資料結構內之相對應元件的相關性,該執行環境係經進一步組態設定以,護表示所滿足之元件相關性的並行性狀態超資料,按照該相關性資料結構之並行性狀態超資料以識別出該相關性資料結構中可獲用於執行的元件,其中當該並行性狀態超資料表示一元件的所有相關性皆獲滿足時該元件即為可獲用於執行,在一或更多執行平台內並行地執行該等複數個所識別元件,以及更新該並行性狀態超資料,並且回應於該等產生個別輸出之所識別元件的一或更多者以識別出可獲用於執行的額外元件。
类似技术:
公开号 | 公开日 | 专利标题 TWI531973B|2016-05-01|高度平行式處理作業的登錄和執行 Abadi et al.2017|A computational model for TensorFlow: an introduction ES2408054B1|2014-02-28|Método y sistema para la gestión de máquinas virtuales en entornos de almacenamiento en nube con conexión en red US8862975B2|2014-10-14|Web-based workflow service visualization and navigation US8296721B2|2012-10-23|Template-based software development US8589864B2|2013-11-19|Automating the creation of an application provisioning model US8769486B2|2014-07-01|Dynamically generating statically-typed proxies for dynamically-typed functions US9514413B1|2016-12-06|Framework for finding one or more solutions to a problem US9582623B2|2017-02-28|Dynamically loaded system-level simulation JP2011138494A|2011-07-14|仮想タスクを使用したマルチコアプロセッサの性能解析のための関係モデル化 US10896373B1|2021-01-19|Determining comprehensibility of a graphical model in a graphical modeling environment Caromel et al.2008|A transparent non-invasive file data model for algorithmic skeletons Kufner et al.2019|Restful State Machines and SQL Database US10176015B2|2019-01-08|Progress visualization of computational job Kurtev2008|Application of reflection in model transformation languages Kim2017|Refinable Function: An Object-oriented Approach to Procedure Modularity Sanner2008|The Python interpreter as a framework for integrating scientific computing software-components Blochinger et al.2006|Visualization aided performance tuning of irregular task-parallel computations Malinova2011|Modernizing Legacy Physics Applications for Reuse in Web and SOA CN106445487A|2017-02-22|用于控制交互式组件的处理单元、软件以及方法 Yamagiwa et al.2008|Design and implementation of a graphical user interface for stream-based distributed computing Kamiński et al.2013|Verification of Models in Agent Based Computational Economics—Lessons from Software Engineering Gerlach2006|Fault-tolerant dynamic parallel schedules Alonso2010|Formal modeling, verification and analysis of TReCS and TX Carro Liñares et al.1993|Some paradigms for visualizing parallel execution of logic programs
同族专利:
公开号 | 公开日 CN103649907B|2016-09-21| EP2668568A4|2016-03-23| US8935705B2|2015-01-13| TWI531973B|2016-05-01| AU2012256399A1|2013-09-12| KR20140023971A|2014-02-27| CA2829194A1|2012-11-22| EP2668568A1|2013-12-04| JP2014513372A|2014-05-29| US20120291045A1|2012-11-15| CN103649907A|2014-03-19| JP5989097B2|2016-09-07| AU2012256399B2|2016-12-01| HK1190476A1|2014-07-04| WO2012158231A1|2012-11-22|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题 US5701451A|1995-06-07|1997-12-23|International Business Machines Corporation|Method for fulfilling requests of a web browser| US5867725A|1996-03-21|1999-02-02|International Business Machines Corporation|Concurrent multitasking in a uniprocessor| WO1997044741A1|1996-05-23|1997-11-27|The United States Of America, Represented By The Secretary, Department Of Health And Human Services, The National Institutes Of Health|System and method for combining multiple learning agents to produce a prediction method| US6163878A|1998-03-31|2000-12-19|Jereme Kohl|Method and system for designing, generating and storing applications| US6826597B1|1999-03-17|2004-11-30|Oracle International Corporation|Providing clients with services that retrieve data from data sources that do not necessarily support the format required by the clients| US6567796B1|1999-03-23|2003-05-20|Microstrategy, Incorporated|System and method for management of an automatic OLAP report broadcast system| AU6754800A|1999-08-02|2001-02-19|Reticular Systems, Inc.|Integrated system and method of creating intelligent agents| GB9923340D0|1999-10-04|1999-12-08|Secr Defence|Improvements relating to security| US6609190B1|2000-01-06|2003-08-19|International Business Machines Corporation|Microprocessor with primary and secondary issue queue| JP2001265799A|2000-03-15|2001-09-28|Hitachi Ltd|情報検索方法| US6865593B1|2000-04-12|2005-03-08|Webcollege, Inc.|Dynamic integration of web sites| US20020035584A1|2000-05-09|2002-03-21|Paul Scheier|icFoundation web site development software and icFoundation biztalk server 2000 integration| JP3729064B2|2000-11-29|2005-12-21|日本電気株式会社|データ依存関係検出装置| US20020143821A1|2000-12-15|2002-10-03|Douglas Jakubowski|Site mining stylesheet generator| US20020152260A1|2001-03-12|2002-10-17|Qiming Chen|Dynamic agent with embedded web server and mark-up language support for e-commerce automation| JP2003108558A|2001-10-02|2003-04-11|Ricoh Co Ltd|データ検索システム| US7822860B2|2001-12-11|2010-10-26|International Business Machines Corporation|Method and apparatus for dynamic reconfiguration of web services infrastructure| US7225183B2|2002-01-28|2007-05-29|Ipxl, Inc.|Ontology-based information management system and method| US20030196108A1|2002-04-12|2003-10-16|Kung Kenneth C.|System and techniques to bind information objects to security labels| US7574652B2|2002-06-20|2009-08-11|Canon Kabushiki Kaisha|Methods for interactively defining transforms and for generating queries by manipulating existing query data| US7134022B2|2002-07-16|2006-11-07|Flyntz Terence T|Multi-level and multi-category data labeling system| US20040153908A1|2002-09-09|2004-08-05|Eprivacy Group, Inc.|System and method for controlling information exchange, privacy, user references and right via communications networks communications networks| US7167850B2|2002-10-10|2007-01-23|Ab Initio Software Corporation|Startup and control of graph-based computation| EP1426857A1|2002-11-05|2004-06-09|Orimos S.A.|Component-based development of software| US20040236824A1|2003-05-23|2004-11-25|Millington Bradley D.|Post-cache substitution| BRPI0412778A|2003-07-22|2006-09-26|Kinor Technologies Inc|acesso á informações usando ontologia| CA2459004A1|2004-02-20|2005-08-20|Ibm Canada Limited - Ibm Canada Limitee|Method and system to control data acces using security label components| US7594227B2|2004-03-08|2009-09-22|Ab Initio Technology Llc|Dependency graph parameter scoping| US20050240600A1|2004-04-21|2005-10-27|Hill David A|Methods, systems, and storage mediums for integrating service request generation systems with a service order control system| US20050289342A1|2004-06-28|2005-12-29|Oracle International Corporation|Column relevant data security label| US8375294B2|2004-07-29|2013-02-12|Cisco Technology, Inc.|Editing web pages| US7831570B2|2004-12-30|2010-11-09|Oracle International Corporation|Mandatory access control label security| US7509374B2|2005-09-09|2009-03-24|Alchemic Solutions Group, Inc.|Systems and methods for creating customized applications| US7730082B2|2005-12-12|2010-06-01|Google Inc.|Remote module incorporation into a container document| US7760743B2|2006-03-06|2010-07-20|Oracle America, Inc.|Effective high availability cluster management and effective state propagation for failure recovery in high availability clusters| US20080040661A1|2006-07-07|2008-02-14|Bryce Allen Curtis|Method for inheriting a Wiki page layout for a Wiki page| US8219900B2|2006-07-07|2012-07-10|International Business Machines Corporation|Programmatically hiding and displaying Wiki page layout sections| US20080127146A1|2006-09-06|2008-05-29|Shih-Wei Liao|System and method for generating object code for map-reduce idioms in multiprocessor systems| US20080222634A1|2007-03-06|2008-09-11|Yahoo! Inc.|Parallel processing for etl processes| JP4973246B2|2007-03-09|2012-07-11|日本電気株式会社|アクセス権管理システム、サーバ及びアクセス権管理プログラム| US8010567B2|2007-06-08|2011-08-30|GM Global Technology Operations LLC|Federated ontology index to enterprise knowledge| US7792836B2|2007-06-17|2010-09-07|Global Telegenetics, Inc.|Portals and doors for the semantic web and grid| US20090019386A1|2007-07-13|2009-01-15|Internet Simplicity, A California Corporation|Extraction and reapplication of design information to existing websites| US20080086436A1|2007-08-01|2008-04-10|Dr. Ying Zhao|Knowledge pattern search from networked agents| US9268856B2|2007-09-28|2016-02-23|Yahoo! Inc.|System and method for inclusion of interactive elements on a search results page| CN101398810B|2007-09-30|2013-05-01|日电(中国)有限公司|自适应服务选择设备及其方法,查询系统及其方法| US8745228B2|2007-11-26|2014-06-03|Adobe Systems Incorporated|Matching device capabilities and content characteristics| US8285748B2|2008-05-28|2012-10-09|Oracle International Corporation|Proactive information security management| CN102089767B|2008-05-30|2015-01-21|爱迪德加拿大公司|无人值守应用程序的经认证数据库连接| JP4491026B2|2008-06-30|2010-06-30|株式会社東芝|情報処理装置、プログラム処理方法及びコンピュータプログラム| US8589333B2|2008-08-19|2013-11-19|Northrop Grumman Systems Corporation|System and method for information sharing across security boundaries| US8107452B1|2008-09-26|2012-01-31|Sprint Communications Company L.P.|Customizing a browsing experience on a mobile communications device| US20100145720A1|2008-12-05|2010-06-10|Bruce Reiner|Method of extracting real-time structured data and performing data analysis and decision support in medical reporting| US8234693B2|2008-12-05|2012-07-31|Raytheon Company|Secure document management| US9244981B2|2008-12-30|2016-01-26|Oracle International Corporation|Resource description framework security| US9218209B2|2008-12-31|2015-12-22|Pivotal Software, Inc.|Apparatus and method for parallel processing of a query| CN101515231A|2009-03-23|2009-08-26|浙江大学|基于数据流分析的单线程程序并行化的实现方法| WO2011000046A1|2009-07-01|2011-01-06|Ozmota Inc.|Systems and methods for determining information and knowledge relevancy, relevant knowledge discovery and interactions, and knowledge creation| US9038168B2|2009-11-20|2015-05-19|Microsoft Technology Licensing, Llc|Controlling resource access based on resource properties| US20110161847A1|2009-12-31|2011-06-30|Cbs Interactive, Inc.|System and method for integrating and publishing pages of content| US8887163B2|2010-06-25|2014-11-11|Ebay Inc.|Task scheduling based on dependencies and resources| US9424236B2|2011-04-26|2016-08-23|Oracle International Corporation|Filtered Stylesheets| US20130036351A1|2011-08-01|2013-02-07|Trajan King|Apparatus, system, and method for dynamically customizing a web page|EP1686454B1|2005-01-28|2018-12-26|Kyocera Corporation|Display apparatus| US9396279B1|2009-02-17|2016-07-19|Jpmorgan Chase Bank, Na|Collaborative virtual markup| US9170798B2|2012-03-02|2015-10-27|Vmware, Inc.|System and method for customizing a deployment plan for a multi-tier application in a cloud infrastructure| US9952898B2|2013-03-15|2018-04-24|Tact.Ai Technologies, Inc.|Dynamic construction and management of task pipelines| CA2955378C|2014-07-18|2020-10-13|Ab Initio Technology Llc|Managing parameter sets| KR102181640B1|2016-05-17|2020-11-23|아브 이니티오 테크놀로지 엘엘시|재구성가능한 분산 처리| FR3053199A1|2016-06-27|2017-12-29|Orange|Serveur de statistiques pour optimisation de requetes client-serveur| CN107608774A|2017-09-08|2018-01-19|新智云数据服务有限公司|一种任务调度方法、装置、设备及存储介质|
法律状态:
优先权:
[返回顶部]
申请号 | 申请日 | 专利标题 US13/107,634|US8935705B2|2011-05-13|2011-05-13|Execution of highly concurrent processing tasks based on the updated dependency data structure at run-time| 相关专利
Sulfonates, polymers, resist compositions and patterning process
Washing machine
Washing machine
Device for fixture finishing and tension adjusting of membrane
Structure for Equipping Band in a Plane Cathode Ray Tube
Process for preparation of 7 alpha-carboxyl 9, 11-epoxy steroids and intermediates useful therein an
国家/地区
|